// 封装 axios 方法
import axios from 'axios'
import { getToken } from './utils/token'
import { Message } from 'element-ui'


const service = axios.create({
  baseURL: '/api',
  timeout: 3000
})

// 添加请求拦截器
service.interceptors.request.use((config) => {
  // 在请求前获取并设置token
  config.headers['token'] = getToken('token')
  return config
}), (error) => {
  return Promise.reject(error)
}

// 添加响应拦截器
service.interceptors.response.use((response) => {
  let { status, message } = response.data
  if (status !== 200) {
    Message({ message: message || "error", type: "warning" })
  }
  return response
}), (error) => {
  // 判断请求异常信息中是否含有超时timeout字符串
  if (error.message.includes('timeout')) {
    console.log("错误回调", error)
    this.$message({ message: '网络超时，请连接网络或刷新页面！', type: 'warning' })
  }
  return Promise.reject(error)
}

export default service